Statistics
A Statistics behavior allows you to collect and report statistics generated by other behaviors in a component during a simulation.

Properties
Data collection can be cumulative or based on time, states and events. In order to report statistics a behavior needs to have a Statistics property or else you can use a Python Script to manually define data collection. By default, interval-based statistics are reported every 60 seconds in a running simulation.
| Name | Description | 
| Name | Defines the name of the Statistics behavior. | 
| PartsEntered | Indicates the number of components that have arrived at a container type behavior. | 
| PartsExited | Indicates the number of components that have departed a container type behavior. | 
| PartsCurrent | Indicates the current amount of components attached to a container type behavior. | 
| PartsUtilization | Indicates the percentage of components attached to a container type behavior divided by the container's capacity. For example, a Component Container may have the capacity to hold 100 components but has only contained 50 components, resulting in 50 percent utilization of storage space. | 
| PartsAverageCount | Indicates the average amount of components that have been attached to a container type behavior. For example, on average a sorting machine might have 10 components at any given time. | 
| PartsMinCount | Indicates the minimum number of components that have been attached to a container type behavior at one particular time. For example, a shuttle conveyor might have a minimum of one component at any given time. | 
| PartsMaxCount | Indicates the maximum number of components that have been attached to a container type behavior. For example, a robot gripper might have a maximum of three components at any given time. | 
| PartsTotalTime | Indicates the total amount of time each component spent attached to a container type behavior. For example, a machine processes 10 components for 5 seconds with a feed in/out rate of 2~3 seconds, so the sum total of each component's duration in the machine added together results in PartsTotalTime. | 
| PartsAverageTime | Indicates the average amount of time a component spent attached to a container type behavior. | 
| PartsMinTime | Indicates the minimum amount of time a component spent attached to a container type behavior. | 
| PartsMaxTime | The maximum amount of time a component spent attached to a container type behavior. | 
| PartsIntervalEntered | Same as PartsEntered but for a recorded interval. | 
| PartsIntervalExited | Same as PartsExited but for a recorded interval. | 
| PartsIntervalCurrent | Same as PartsCurrent but for a recorded interval. | 
| PartsIntervalUtilization | Same as PartsUtilization but for a recorded interval. | 
| PartsIntervalAverageCount | Same as PartsAverageCount but for a recorded interval. | 
| PartsIntervalMinCount | Same as PartsMinCount but for a recorded interval. | 
| PartsIntervalMaxCount | Same as PartsMaxCount but for a recorded interval. | 
| PartsIntervalTotalTime | Same as PartsTotalTime but for a recorded interval. | 
| PartsIntervalAverageTime | Same as PartsAverageTime but for a recorded interval. | 
| PartsIntervalMinTime | Same as PartsMinTime but for a recorded interval. | 
| PartsIntervalMaxTime | Same as PartsMaxTime but for a recorded interval. | 
| Utilization | Indicates the percentage a behavior was in a defined "setup" or "busy" state based on the elapsed time of a simulation. | 
| TotalStateTime | Indicates the total amount of time a behavior was in any of its defined states based on the elapsed time of a simulation. | 
| BreakPercentage | Indicates the percentage a behavior was in a defined "break" state based on the elapsed time of a simulation. Generally, a broken state should occur before a defined repair state. | 
| IdlePercentage | Indicates the percentage a behavior was in a defined "idle" state based on the elapsed time of a simulation. | 
| BusyPercentage | Indicates the percentage a behavior was in a defined "busy" state based on the elapsed time of a simulation. | 
| BlockedPercentage | Indicates the percentage a behavior was in a defined "blocked" state based on the elapsed time of a simulation. Generally, capacity issues trigger a blocked state in a behavior. | 
| FailedPercentage | Indicates the percentage a behavior was in a defined "failed" state based on the elapsed time of a simulation. | 
| RepairPercentage | Indicates the percentage a behavior was in a defined "repair" state based on the elapsed time of a simulation. | 
| SetupPercentage | Indicates the percentage a behavior was in a defined "setup" or "warm up" state based on the elapsed time of a simulation. | 
| AverageActivePeriodTime | Indicates the average amount of time a behavior was in one of its defined states during a simulation. | 
| IntervalUtilization | Same as Utilization but for a recorded interval. | 
| IntervalTotalStateTime | Same as TotalStateTime but for a recorded interval. | 
| IntervalBreakPercentage | Same as BreakPercentage but for a recorded interval. | 
| IntervalIdlePercentage | Same as IdlePercentage but for a recorded interval. | 
| IntervalBusyPercentage | Same as BusyPercentage but for a recorded interval. | 
| IntervalBlockedPercentage | Same as BlockedPercentage but for a recorded interval. | 
| IntervalFailedPercentage | Same as FailedPercentage but for a recorded interval. | 
| IntervalRepairPercentage | Same as RepairPercentage but for a recorded interval. | 
| IntervalSetupPercentage | Same as SetupPercentage but for a recorded interval. | 
States
A component can have one or more states, which are defined by a Statistics behavior. A state is the condition of a component during a simulation at a given time. This is why each state has two dynamic properties: State<StateName>Percentage and State<StateName>IntervalPercentage. A state is mapped to a system state, which is a hardcoded, predefined condition for a component.

The Create default states property of a Statistics behavior allows you to create the following eight states.
| Name | Description | 
| Blocked | Indicates a component is blocked, for example a capacity issue or parts are stuck in a process. | 
| Break | Indicates a break in a component, for example a break in a process. | 
| Broken | Indicates a failure in a component, for example something is broken and needs to be repaired. | 
| Busy | Indicates a component is busy, for example executing a process. | 
| Idle | Indicates a component is not busy, for example not waiting for a command or not executing a process. | 
| Repair | Indicates a component is being repaired, for example fixing a broken part. | 
| Setup | Indicates a component is being configured, for example a boot process or steps before executing a process. | 
| Warmup | Indicates warm up time in a component. | 
Notes:
- You can rename a state, but it must always be mapped to a system state.